<!-- IOT 产品详情 -->

<template>
  <EasyModal v-model="model" v-bind="MAP.MODEL_PROPS">
    <WebShow>
      <MajorTitle :title="one.productName">
        <ShowStatus bind="enable" noLabel auto />
      </MajorTitle>

      <ParamTab :param="one" class="marginBottom" @change="changeTab" />

      <div v-if="one.tab === DICT.TAB[0][0]">
        <MyBase />
      </div>

      <div v-if="one.tab === DICT.TAB[1][0]">
        <InstanceSearch />
        <InstanceTable />
      </div>

      <div v-if="one.tab === DICT.TAB[2][0]">
        <PropertySearch />
        <PropertyTable />
      </div>
    </WebShow>

    <InstanceModal />

    <PropertyModal />

    <!-- <template #footer>
      <MyFooter />
    </template> -->
  </EasyModal>
</template>

<script>
// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import store from './store'
import mixDetail from '@admin/components/detail/mixDetail'

// ============================== 导出组件 ============================== //

export default {
  /**
   * 名称定义 (实际使用名称)
   */
  name: 'DetailIOTService',

  /**
   * 混入列表 (配置选项合并)
   */
  mixins: [CORE.mixStore(store), mixDetail],

  /**
   * 组件导入 (Abc.vue + Abc/index.vue)
   */
  ...CORE.components(require.context('./', true, /vue$/)),

  /**
   * 监听属性 (深度 deep 首次 immediate)
   */
  watch: {
    /**
     * 监听详情 ID
     */
    'one.id'(id) {
      this.DICT.TAB.slice(1).forEach(([tab]) => {
        this[`${tab}_param`].productId = this[`${tab}_INIT_ONE`].productId = id
      })
    },
  },

  /**
   * 本地方法 (轻量重要在前)
   */
  methods: {
    /**
     * 切换页签
     */
    changeTab(tab) {
      const { DICT: { TAB } } = this
      if (tab !== TAB[0][0]) this[`${tab}_startList`](1)
    },
  },
}
</script>
